Release 10.1A: OpenEdge Development:
Web Services


Defining TABLE-HANDLE (dynamic temp-table) parameters

TABLE-HANDLE parameters pass both the schema and data, because the dynamic temp-table schema is not known at compile time. Thus, for TABLE-HANDLE parameters, Progress 4GL Web services map a Progress TABLE-HANDLE to a <complexType> containing a sequence of xsd:any. There is a single definition used for all TABLE-HANDLE parameters in all supported SOAP formats. The following WSDL sample shows this common TABLE-HANDLE parameter definition:

TABLE-HANDLE definition for all dynamic temp-table parameters
<complexType name="TableHandleParam"> 
   <sequence> 
      <any namespace="##local"/> 
   </sequence> 
</complexType> 

The client application must create (for input) and parse (for output) the XML Schema along with the data for the parameter. How the client inserts the input schema and data in request messages and how it parses the output schema and data from response messages is entirely dependent on the client toolkit.

This is the general format in Progress 4GL Web services for representing a TABLE-HANDLE in a SOAP message, where the schema is defined in a <schema> element and each row is encapsulated by an <Item> element within a <Data> element:

TABLE-HANDLE parameters—general format
<DataSet> 
   <schema> 
      <!-- TEMP-TABLE row definition in XML Schema --> 
   </schema> 
   <Data> 
      <Item> <!--- row instance 1 --> </Item> 
      <Item> <!--- row instance 2 --> </Item> 
      <Item> <!--- row instance 3 --> </Item> 
      ... 
   </Data> 
</DataSet> 

Each column of a TABLE-HANDLE row can hold any data type shown in Table 4–4.

Table 4–4: XML data types for TABLE-HANDLE (dynamic temp-table) parameter columns 
Progress 4GL data type
XML Schema data type
CHARACTER 
xsd:string 
DATE 
xsd:date 
DATETIME-TZ 
xsd:dateTime 
DECIMAL 
xsd:decimal 
INTEGER (32 bit)
xsd:int 
LOGICAL 
xsd:boolean 
RAW 
xsd:base64Binary 


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095